home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1446.txt < prev    next >
Text File  |  1994-08-01  |  109KB  |  3,069 lines

  1.  
  2.  
  3.  
  4.           Network Working Group                                J. Galvin
  5.           Request for Comments: 1446         Trusted Information Systems
  6.                                                            K. McCloghrie
  7.                                                       Hughes LAN Systems
  8.                                                               April 1993
  9.  
  10.  
  11.                                 Security Protocols
  12.                                for version 2 of the
  13.                    Simple Network Management Protocol (SNMPv2)
  14.  
  15.  
  16.           Status of this Memo
  17.  
  18.           This RFC specifes an IAB standards track protocol for the
  19.           Internet community, and requests discussion and suggestions
  20.           for improvements.  Please refer to the current edition of the
  21.           "IAB Official Protocol Standards" for the standardization
  22.           state and status of this protocol.  Distribution of this memo
  23.           is unlimited.
  24.  
  25.  
  26.           Table of Contents
  27.  
  28.  
  29.           1 Introduction ..........................................    2
  30.           1.1 A Note on Terminology ...............................    3
  31.           1.2 Threats .............................................    4
  32.           1.3 Goals and Constraints ...............................    5
  33.           1.4 Security Services ...................................    6
  34.           1.5 Mechanisms ..........................................    7
  35.           1.5.1 Message Digest Algorithm ..........................    8
  36.           1.5.2 Symmetric Encryption Algorithm ....................    9
  37.           2 SNMPv2 Party ..........................................   11
  38.           3 Digest Authentication Protocol ........................   14
  39.           3.1 Generating a Message ................................   16
  40.           3.2 Receiving a Message .................................   18
  41.           4 Symmetric Privacy Protocol ............................   21
  42.           4.1 Generating a Message ................................   21
  43.           4.2 Receiving a Message .................................   22
  44.           5 Clock and Secret Distribution .........................   24
  45.           5.1 Initial Configuration ...............................   25
  46.           5.2 Clock Distribution ..................................   28
  47.           5.3 Clock Synchronization ...............................   29
  48.           5.4 Secret Distribution .................................   31
  49.           5.5 Crash Recovery ......................................   34
  50.           6 Security Considerations ...............................   37
  51.           6.1 Recommended Practices ...............................   37
  52.           6.2 Conformance .........................................   39
  53.           6.3 Protocol Correctness ................................   42
  54.  
  55.  
  56.  
  57.  
  58.           Galvin & McCloghrie                                   [Page i]
  59.  
  60.  
  61.  
  62.  
  63.  
  64.           RFC 1446        Security Protocols for SNMPv2       April 1993
  65.  
  66.  
  67.           6.3.1 Clock Monotonicity Mechanism ......................   43
  68.           6.3.2 Data Integrity Mechanism ..........................   43
  69.           6.3.3 Data Origin Authentication Mechanism ..............   44
  70.           6.3.4 Restricted Administration Mechanism ...............   44
  71.           6.3.5 Message Timeliness Mechanism ......................   45
  72.           6.3.6 Selective Clock Acceleration Mechanism ............   46
  73.           6.3.7 Confidentiality Mechanism .........................   47
  74.           7 Acknowledgements ......................................   48
  75.           8 References ............................................   49
  76.           9 Authors' Addresses ....................................   51
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.           Galvin & McCloghrie                                   [Page 1]
  118.  
  119.  
  120.  
  121.  
  122.  
  123.           RFC 1446        Security Protocols for SNMPv2       April 1993
  124.  
  125.  
  126.           1.  Introduction
  127.  
  128.           A network management system contains: several (potentially
  129.           many) nodes, each with a processing entity, termed an agent,
  130.           which has access to management instrumentation; at least one
  131.           management station; and, a management protocol, used to convey
  132.           management information between the agents and management
  133.           stations.  Operations of the protocol are carried out under an
  134.           administrative framework which defines both authentication and
  135.           authorization policies.
  136.  
  137.           Network management stations execute management applications
  138.           which monitor and control network elements.  Network elements
  139.           are devices such as hosts, routers, terminal servers, etc.,
  140.           which are monitored and controlled through access to their
  141.           management information.
  142.  
  143.           In the Administrative Model for SNMPv2 document [1], each
  144.           SNMPv2 party is, by definition, associated with a single
  145.           authentication protocol and a single privacy protocol.  It is
  146.           the purpose of this document, Security Protocols for SNMPv2,
  147.           to define one such authentication and one such privacy
  148.           protocol.
  149.  
  150.           The authentication protocol provides a mechanism by which
  151.           SNMPv2 management communications transmitted by the party may
  152.           be reliably identified as having originated from that party.
  153.           The authentication protocol defined in this memo also reliably
  154.           determines that the message received is the message that was
  155.           sent.
  156.  
  157.           The privacy protocol provides a mechanism by which SNMPv2
  158.           management communications transmitted to said party are
  159.           protected from disclosure.  The privacy protocol in this memo
  160.           specifies that only authenticated messages may be protected
  161.           from disclosure.
  162.  
  163.           These protocols are secure alternatives to the so-called
  164.           "trivial" protocol defined in [2].
  165.  
  166.                USE OF THE TRIVIAL PROTOCOL ALONE DOES NOT CONSTITUTE
  167.                SECURE NETWORK MANAGEMENT.  THEREFORE, A NETWORK
  168.                MANAGEMENT SYSTEM THAT IMPLEMENTS ONLY THE TRIVIAL
  169.                PROTOCOL IS NOT CONFORMANT TO THIS SPECIFICATION.
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.           Galvin & McCloghrie                                   [Page 2]
  177.  
  178.  
  179.  
  180.  
  181.  
  182.           RFC 1446        Security Protocols for SNMPv2       April 1993
  183.  
  184.  
  185.           The Digest Authentication Protocol is described in Section 3.
  186.           It provides a data integrity service by transmitting a message
  187.           digest - computed by the originator and verified by the
  188.           recipient - with each SNMPv2 message.  The data origin
  189.           authentication service is provided by prefixing the message
  190.           with a secret value known only to the originator and
  191.           recipient, prior to computing the digest.  Thus, data
  192.           integrity is supported explicitly while data origin
  193.           authentication is supported implicitly in the verification of
  194.           the digest.
  195.  
  196.           The Symmetric Privacy Protocol is described in Section 4.  It
  197.           protects messages from disclosure by encrypting their contents
  198.           according to a secret cryptographic key known only to the
  199.           originator and recipient.  The additional functionality
  200.           afforded by this protocol is assumed to justify its additional
  201.           computational cost.
  202.  
  203.           The Digest Authentication Protocol depends on the existence of
  204.           loosely synchronized clocks between the originator and
  205.           recipient of a message.  The protocol specification makes no
  206.           assumptions about the strategy by which such clocks are
  207.           synchronized.  Section 5.3 presents one strategy that is
  208.           particularly suited to the demands of SNMP network management.
  209.  
  210.           Both protocols described here require the sharing of secret
  211.           information between the originator of a message and its
  212.           recipient.  The protocol specifications assume the existence
  213.           of the necessary secrets.  The selection of such secrets and
  214.           their secure distribution to appropriate parties may be
  215.           accomplished by a variety of strategies.  Section 5.4 presents
  216.           one such strategy that is particularly suited to the demands
  217.           of SNMP network management.
  218.  
  219.  
  220.           1.1.  A Note on Terminology
  221.  
  222.           For the purpose of exposition, the original Internet-standard
  223.           Network Management Framework, as described in RFCs 1155, 1157,
  224.           and 1212, is termed the SNMP version 1 framework (SNMPv1).
  225.           The current framework is termed the SNMP version 2 framework
  226.           (SNMPv2).
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.           Galvin & McCloghrie                                   [Page 3]
  236.  
  237.  
  238.  
  239.  
  240.  
  241.           RFC 1446        Security Protocols for SNMPv2       April 1993
  242.  
  243.  
  244.           1.2.  Threats
  245.  
  246.           Several of the classical threats to network protocols are
  247.           applicable to the network management problem and therefore
  248.           would be applicable to any SNMPv2 security protocol.  Other
  249.           threats are not applicable to the network management problem.
  250.           This section discusses principal threats, secondary threats,
  251.           and threats which are of lesser importance.
  252.  
  253.           The principal threats against which any SNMPv2 security
  254.           protocol should provide protection are:
  255.  
  256.  
  257.           Modification of Information
  258.                The SNMPv2 protocol provides the means for management
  259.                stations to interrogate and to manipulate the value of
  260.                objects in a managed agent.  The modification threat is
  261.                the danger that some party may alter in-transit messages
  262.                generated by an authorized party in such a way as to
  263.                effect unauthorized management operations, including
  264.                falsifying the value of an object.
  265.  
  266.           Masquerade
  267.                The SNMPv2 administrative model includes an access
  268.                control model.  Access control necessarily depends on
  269.                knowledge of the origin of a message.  The masquerade
  270.                threat is the danger that management operations not
  271.                authorized for some party may be attempted by that party
  272.                by assuming the identity of another party that has the
  273.                appropriate authorizations.
  274.  
  275.           Two secondary threats are also identified.  The security
  276.           protocols defined in this memo do provide protection against:
  277.  
  278.           Message Stream Modification
  279.                The SNMPv2 protocol is based upon a connectionless
  280.                transport service which may operate over any subnetwork
  281.                service.  The re-ordering, delay or replay of messages
  282.                can and does occur through the natural operation of many
  283.                such subnetwork services.  The message stream
  284.                modification threat is the danger that messages may be
  285.                maliciously re-ordered, delayed or replayed to an extent
  286.                which is greater than can occur through the natural
  287.                operation of a subnetwork service, in order to effect
  288.                unauthorized management operations.
  289.  
  290.  
  291.  
  292.  
  293.  
  294.           Galvin & McCloghrie                                   [Page 4]
  295.  
  296.  
  297.  
  298.  
  299.  
  300.           RFC 1446        Security Protocols for SNMPv2       April 1993
  301.  
  302.  
  303.           Disclosure
  304.                The disclosure threat is the danger of eavesdropping on
  305.                the exchanges between managed agents and a management
  306.                station.  Protecting against this threat is mandatory
  307.                when the SNMPv2 is used to create new SNMPv2 parties [1]
  308.                on which subsequent secure operation might be based.
  309.                Protecting against the disclosure threat may also be
  310.                required as a matter of local policy.
  311.  
  312.           There are at least two threats that a SNMPv2 security protocol
  313.           need not protect against.  The security protocols defined in
  314.           this memo do not provide protection against:
  315.  
  316.           Denial of Service
  317.                A SNMPv2 security protocol need not attempt to address
  318.                the broad range of attacks by which service to authorized
  319.                parties is denied.  Indeed, such denial-of-service
  320.                attacks are in many cases indistinguishable from the type
  321.                of network failures with which any viable network
  322.                management protocol must cope as a matter of course.
  323.  
  324.           Traffic Analysis
  325.                In addition, a SNMPv2 security protocol need not attempt
  326.                to address traffic analysis attacks.  Indeed, many
  327.                traffic patterns are predictable - agents may be managed
  328.                on a regular basis by a relatively small number of
  329.                management stations - and therefore there is no
  330.                significant advantage afforded by protecting against
  331.                traffic analysis.
  332.  
  333.  
  334.           1.3.  Goals and Constraints
  335.  
  336.           Based on the foregoing account of threats in the SNMP network
  337.           management environment, the goals of a SNMPv2 security
  338.           protocol are enumerated below.
  339.  
  340.           (1)  The protocol should provide for verification that each
  341.                received SNMPv2 message has not been modified during its
  342.                transmission through the network in such a way that an
  343.                unauthorized management operation might result.
  344.  
  345.           (2)  The protocol should provide for verification of the
  346.                identity of the originator of each received SNMPv2
  347.                message.
  348.  
  349.  
  350.  
  351.  
  352.  
  353.           Galvin & McCloghrie                                   [Page 5]
  354.  
  355.  
  356.  
  357.  
  358.  
  359.           RFC 1446        Security Protocols for SNMPv2       April 1993
  360.  
  361.  
  362.           (3)  The protocol should provide that the apparent time of
  363.                generation for each received SNMPv2 message is recent.
  364.  
  365.           (4)  The protocol should provide, when necessary, that the
  366.                contents of each received SNMPv2 message are protected
  367.                from disclosure.
  368.  
  369.           In addition to the principal goal of supporting secure network
  370.           management, the design of any SNMPv2 security protocol is also
  371.           influenced by the following constraints:
  372.  
  373.           (1)  When the requirements of effective management in times of
  374.                network stress are inconsistent with those of security,
  375.                the former are preferred.
  376.  
  377.           (2)  Neither the security protocol nor its underlying security
  378.                mechanisms should depend upon the ready availability of
  379.                other network services (e.g., Network Time Protocol (NTP)
  380.                or secret/key management protocols).
  381.  
  382.           (3)  A security mechanism should entail no changes to the
  383.                basic SNMP network management philosophy.
  384.  
  385.  
  386.           1.4.  Security Services
  387.  
  388.           The security services necessary to support the goals of a
  389.           SNMPv2 security protocol are as follows.
  390.  
  391.           Data Integrity
  392.                is the provision of the property that data has not been
  393.                altered or destroyed in an unauthorized manner, nor have
  394.                data sequences been altered to an extent greater than can
  395.                occur non-maliciously.
  396.  
  397.           Data Origin Authentication
  398.                is the provision of the property that the claimed origin
  399.                of received data is corroborated.
  400.  
  401.           Data Confidentiality
  402.                is the provision of the property that information is not
  403.                made available or disclosed to unauthorized individuals,
  404.                entities, or processes.
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.           Galvin & McCloghrie                                   [Page 6]
  413.  
  414.  
  415.  
  416.  
  417.  
  418.           RFC 1446        Security Protocols for SNMPv2       April 1993
  419.  
  420.  
  421.           The protocols specified in this memo require both data
  422.           integrity and data origin authentication to be used at all
  423.           times.  For these protocols, it is not possible to realize
  424.           data integrity without data origin authentication, nor is it
  425.           possible to realize data origin authentication without data
  426.           integrity.
  427.  
  428.           Further, there is no provision for data confidentiality
  429.           without both data integrity and data origin authentication.
  430.  
  431.  
  432.           1.5.  Mechanisms
  433.  
  434.           The security protocols defined in this memo employ several
  435.           types of mechanisms in order to realize the goals and security
  436.           services described above:
  437.  
  438.           o    In support of data integrity, a message digest algorithm
  439.                is required.  A digest is calculated over an appropriate
  440.                portion of a SNMPv2 message and included as part of the
  441.                message sent to the recipient.
  442.  
  443.           o    In support of data origin authentication and data
  444.                integrity, the portion of a SNMPv2 message that is
  445.                digested is first prefixed with a secret value shared by
  446.                the originator of that message and its intended
  447.                recipient.
  448.  
  449.           o    To protect against the threat of message delay or replay,
  450.                (to an extent greater than can occur through normal
  451.                operation), a timestamp value is included in each message
  452.                generated.  A recipient evaluates the timestamp to
  453.                determine if the message is recent.  This protection
  454.                against the threat of message delay or replay does not
  455.                imply nor provide any protection against unauthorized
  456.                deletion or suppression of messages.  Other mechanisms
  457.                defined independently of the security protocol can also
  458.                be used to detect message replay (e.g., the request-id
  459.                [2]), or for set operations, the re-ordering, replay,
  460.                deletion, or suppression of messages (e.g., the MIB
  461.                variable snmpSetSerialNo [14]).
  462.  
  463.           o    In support of data confidentiality, a symmetric
  464.                encryption algorithm is required.  An appropriate portion
  465.                of the message is encrypted prior to being transmitted to
  466.  
  467.  
  468.  
  469.  
  470.  
  471.           Galvin & McCloghrie                                   [Page 7]
  472.  
  473.  
  474.  
  475.  
  476.  
  477.           RFC 1446        Security Protocols for SNMPv2       April 1993
  478.  
  479.  
  480.                its recipient.
  481.  
  482.           The security protocols in this memo are defined independently
  483.           of the particular choice of a message digest and encryption
  484.           algorithm - owing principally to the lack of a suitable metric
  485.           by which to evaluate the security of particular algorithm
  486.           choices.  However, in the interests of completeness and in
  487.           order to guarantee interoperability, Sections 1.5.1 and 1.5.2
  488.           specify particular choices, which are considered acceptably
  489.           secure as of this writing.  In the future, this memo may be
  490.           updated by the publication of a memo specifying substitute or
  491.           alternate choices of algorithms, i.e., a replacement for or
  492.           addition to the sections below.
  493.  
  494.  
  495.           1.5.1.  Message Digest Algorithm
  496.  
  497.           In support of data integrity, the use of the MD5 [3] message
  498.           digest algorithm is chosen.  A 128-bit digest is calculated
  499.           over the designated portion of a SNMPv2 message and included
  500.           as part of the message sent to the recipient.
  501.  
  502.           An appendix of [3] contains a C Programming Language
  503.           implementation of the algorithm.  This code was written with
  504.           portability being the principal objective.  Implementors may
  505.           wish to optimize the implementation with respect to the
  506.           characteristics of their hardware and software platforms.
  507.  
  508.           The use of this algorithm in conjunction with the Digest
  509.           Authentication Protocol (see Section 3) is identified by the
  510.           ASN.1 object identifier value v2md5AuthProtocol, defined in
  511.           [4].  (Note that this protocol is a modified version of the
  512.           md5AuthProtocol protocol defined in RFC 1352.)
  513.  
  514.           For any SNMPv2 party for which the authentication protocol is
  515.           v2md5AuthProtocol, the size of its private authentication key
  516.           is 16 octets.
  517.  
  518.           Within an authenticated management communication generated by
  519.           such a party, the size of the authDigest component of that
  520.           communication (see Section 3) is 16 octets.
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.           Galvin & McCloghrie                                   [Page 8]
  531.  
  532.  
  533.  
  534.  
  535.  
  536.           RFC 1446        Security Protocols for SNMPv2       April 1993
  537.  
  538.  
  539.           1.5.2.  Symmetric Encryption Algorithm
  540.  
  541.           In support of data confidentiality, the use of the Data
  542.           Encryption Standard (DES) in the Cipher Block Chaining mode of
  543.           operation is chosen.  The designated portion of a SNMPv2
  544.           message is encrypted and included as part of the message sent
  545.           to the recipient.
  546.  
  547.           Two organizations have published specifications defining the
  548.           DES: the National Institute of Standards and Technology (NIST)
  549.           [5] and the American National Standards Institute [6].  There
  550.           is a companion Modes of Operation specification for each
  551.           definition (see [7] and [8], respectively).
  552.  
  553.           The NIST has published three additional documents that
  554.           implementors may find useful.
  555.  
  556.           o    There is a document with guidelines for implementing and
  557.                using the DES, including functional specifications for
  558.                the DES and its modes of operation [9].
  559.  
  560.           o    There is a specification of a validation test suite for
  561.                the DES [10].  The suite is designed to test all aspects
  562.                of the DES and is useful for pinpointing specific
  563.                problems.
  564.  
  565.           o    There is a specification of a maintenance test for the
  566.                DES [11].  The test utilizes a minimal amount of data and
  567.                processing to test all components of the DES.  It
  568.                provides a simple yes-or-no indication of correct
  569.                operation and is useful to run as part of an
  570.                initialization step, e.g., when a computer reboots.
  571.  
  572.           The use of this algorithm in conjunction with the Symmetric
  573.           Privacy Protocol (see Section 4) is identified by the ASN.1
  574.           object identifier value desPrivProtocol, defined in [4].
  575.  
  576.           For any SNMPv2 party for which the privacy protocol is
  577.           desPrivProtocol, the size of the private privacy key is 16
  578.           octets, of which the first 8 octets are a DES key and the
  579.           second 8 octets are a DES Initialization Vector.  The 64-bit
  580.           DES key in the first 8 octets of the private key is a 56 bit
  581.           quantity used directly by the algorithm plus 8 parity bits -
  582.           arranged so that one parity bit is the least significant bit
  583.           of each octet.  The setting of the parity bits is ignored.
  584.  
  585.  
  586.  
  587.  
  588.  
  589.           Galvin & McCloghrie                                   [Page 9]
  590.  
  591.  
  592.  
  593.  
  594.  
  595.           RFC 1446        Security Protocols for SNMPv2       April 1993
  596.  
  597.  
  598.           The length of the octet sequence to be encrypted by the DES
  599.           must be an integral multiple of 8.  When encrypting, the data
  600.           should be padded at the end as necessary; the actual pad value
  601.           is insignificant.
  602.  
  603.           If the length of the octet sequence to be decrypted is not an
  604.           integral multiple of 8 octets, the processing of the octet
  605.           sequence should be halted and an appropriate exception noted.
  606.           Upon decrypting, the padding should be ignored.
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.           Galvin & McCloghrie                                  [Page 10]
  649.  
  650.  
  651.  
  652.  
  653.  
  654.           RFC 1446        Security Protocols for SNMPv2       April 1993
  655.  
  656.  
  657.           2.  SNMPv2 Party
  658.  
  659.           Recall from [1] that a SNMPv2 party is a conceptual, virtual
  660.           execution context whose operation is restricted (for security
  661.           or other purposes) to an administratively defined subset of
  662.           all possible operations of a particular SNMPv2 entity.  A
  663.           SNMPv2 entity is an actual process which performs network
  664.           management operations by generating and/or responding to
  665.           SNMPv2 protocol messages in the manner specified in [12].
  666.           Architecturally, every SNMPv2 entity maintains a local
  667.           database that represents all SNMPv2 parties known to it.
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.           Galvin & McCloghrie                                  [Page 11]
  708.  
  709.  
  710.  
  711.  
  712.  
  713.           RFC 1446        Security Protocols for SNMPv2       April 1993
  714.  
  715.  
  716.           A SNMPv2 party may be represented by an ASN.1 value with the
  717.           following syntax:
  718.  
  719.                SnmpParty ::= SEQUENCE {
  720.                  partyIdentity
  721.                     OBJECT IDENTIFIER,
  722.                  partyTDomain
  723.                     OBJECT IDENTIFIER,
  724.                  partyTAddress
  725.                     OCTET STRING,
  726.                  partyMaxMessageSize
  727.                     INTEGER,
  728.                  partyAuthProtocol
  729.                     OBJECT IDENTIFIER,
  730.                  partyAuthClock
  731.                     INTEGER,
  732.                  partyAuthPrivate
  733.                     OCTET STRING,
  734.                  partyAuthPublic
  735.                     OCTET STRING,
  736.                  partyAuthLifetime
  737.                     INTEGER,
  738.                  partyPrivProtocol
  739.                     OBJECT IDENTIFIER,
  740.                  partyPrivPrivate
  741.                     OCTET STRING,
  742.                  partyPrivPublic
  743.                     OCTET STRING
  744.                }
  745.  
  746.           For each SnmpParty value that represents a SNMPv2 party, the
  747.           generic significance of each of its components is defined in
  748.           [1].  For each SNMPv2 party that supports the generation of
  749.           messages using the Digest Authentication Protocol, additional,
  750.           special significance is attributed to certain components of
  751.           that party's representation:
  752.  
  753.           o    Its partyAuthProtocol component is called the
  754.                authentication protocol and identifies a combination of
  755.                the Digest Authentication Protocol with a particular
  756.                digest algorithm (such as that defined in Section 1.5.1).
  757.                This combined mechanism is used to authenticate the
  758.                origin and integrity of all messages generated by the
  759.                party.
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.           Galvin & McCloghrie                                  [Page 12]
  767.  
  768.  
  769.  
  770.  
  771.  
  772.           RFC 1446        Security Protocols for SNMPv2       April 1993
  773.  
  774.  
  775.           o    Its partyAuthClock component is called the authentication
  776.                clock and represents a notion of the current time that is
  777.                specific to the party.
  778.  
  779.           o    Its partyAuthPrivate component is called the private
  780.                authentication key and represents any secret value needed
  781.                to support the Digest Authentication Protocol and
  782.                associated digest algorithm.
  783.  
  784.           o    Its partyAuthPublic component is called the public
  785.                authentication key and represents any public value that
  786.                may be needed to support the authentication protocol.
  787.                This component is not significant except as suggested in
  788.                Section 5.4.
  789.  
  790.           o    Its partyAuthLifetime component is called the lifetime
  791.                and represents an administrative upper bound on
  792.                acceptable delivery delay for protocol messages generated
  793.                by the party.
  794.  
  795.           For each SNMPv2 party that supports the receipt of messages
  796.           via the Symmetric Privacy Protocol, additional, special
  797.           significance is attributed to certain components of that
  798.           party's representation:
  799.  
  800.           o    Its partyPrivProtocol component is called the privacy
  801.                protocol and identifies a combination of the Symmetric
  802.                Privacy Protocol with a particular encryption algorithm
  803.                (such as that defined in Section 1.5.2).  This combined
  804.                mechanism is used to protect from disclosure all protocol
  805.                messages received by the party.
  806.  
  807.           o    Its partyPrivPrivate component is called the private
  808.                privacy key and represents any secret value needed to
  809.                support the Symmetric Privacy Protocol and associated
  810.                encryption algorithm.
  811.  
  812.           o    Its partyPrivPublic component is called the public
  813.                privacy key and represents any public value that may be
  814.                needed to support the privacy protocol.  This component
  815.                is not significant except as suggested in Section 5.4.
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.           Galvin & McCloghrie                                  [Page 13]
  826.  
  827.  
  828.  
  829.  
  830.  
  831.           RFC 1446        Security Protocols for SNMPv2       April 1993
  832.  
  833.  
  834.           3.  Digest Authentication Protocol
  835.  
  836.           This section describes the Digest Authentication Protocol.  It
  837.           provides both for verifying the integrity of a received
  838.           message (i.e., the message received is the message sent) and
  839.           for verifying the origin of a message (i.e., the reliable
  840.           identification of the originator).  The integrity of the
  841.           message is protected by computing a digest over an appropriate
  842.           portion of a message.  The digest is computed by the
  843.           originator of the message, transmitted with the message, and
  844.           verified by the recipient of the message.
  845.  
  846.           A secret value known only to the originator and recipient of
  847.           the message is prefixed to the message prior to the digest
  848.           computation.  Thus, the origin of the message is known
  849.           implicitly with the verification of the digest.
  850.  
  851.           A requirement on parties using this Digest Authentication
  852.           Protocol is that they shall not originate messages for
  853.           transmission to any destination party which does not also use
  854.           this Digest Authentication Protocol.  This restriction
  855.           excludes undesirable side effects of communication between a
  856.           party which uses these security protocols and a party which
  857.           does not.
  858.  
  859.           Recall from [1] that a SNMPv2 management communication is
  860.           represented by an ASN.1 value with the following syntax:
  861.  
  862.                SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
  863.                  dstParty
  864.                     OBJECT IDENTIFIER,
  865.                  srcParty
  866.                     OBJECT IDENTIFIER,
  867.                  context
  868.                     OBJECT IDENTIFIER,
  869.                  pdu
  870.                     PDUs
  871.                }
  872.  
  873.           For each SnmpMgmtCom value that represents a SNMPv2 management
  874.           communication, the following statements are true:
  875.  
  876.           o    Its dstParty component is called the destination and
  877.                identifies the SNMPv2 party to which the communication is
  878.                directed.
  879.  
  880.  
  881.  
  882.  
  883.  
  884.           Galvin & McCloghrie                                  [Page 14]
  885.  
  886.  
  887.  
  888.  
  889.  
  890.           RFC 1446        Security Protocols for SNMPv2       April 1993
  891.  
  892.  
  893.           o    Its srcParty component is called the source and
  894.                identifies the SNMPv2 party from which the communication
  895.                is originated.
  896.  
  897.           o    Its context component identifies the SNMPv2 context
  898.                containing the management information referenced by the
  899.                communication.
  900.  
  901.           o    Its pdu component has the form and significance
  902.                attributed to it in [12].
  903.  
  904.           Recall from [1] that a SNMPv2 authenticated management
  905.           communication is represented by an ASN.1 value with the
  906.           following syntax:
  907.  
  908.                SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
  909.                  authInfo
  910.                     ANY, - defined by authentication protocol
  911.                  authData
  912.                     SnmpMgmtCom
  913.                }
  914.  
  915.           For each SnmpAuthMsg value that represents a SNMPv2
  916.           authenticated management communication, the following
  917.           statements are true:
  918.  
  919.           o    Its authInfo component is called the authentication
  920.                information and represents information required in
  921.                support of the authentication protocol used by both the
  922.                SNMPv2 party originating the message, and the SNMPv2
  923.                party receiving the message.  The detailed significance
  924.                of the authentication information is specific to the
  925.                authentication protocol in use; it has no effect on the
  926.                application semantics of the communication other than its
  927.                use by the authentication protocol in determining whether
  928.                the communication is authentic or not.
  929.  
  930.           o    Its authData component is called the authentication data
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.           Galvin & McCloghrie                                  [Page 15]
  944.  
  945.  
  946.  
  947.  
  948.  
  949.           RFC 1446        Security Protocols for SNMPv2       April 1993
  950.  
  951.  
  952.                and represents a SNMPv2 management communication.
  953.  
  954.           In support of the Digest Authentication Protocol, an authInfo
  955.           component is of type AuthInformation:
  956.  
  957.                AuthInformation ::= [2] IMPLICIT SEQUENCE {
  958.                  authDigest
  959.                     OCTET STRING,
  960.                  authDstTimestamp
  961.                     UInteger32,
  962.                  authSrcTimestamp
  963.                     UInteger32
  964.                }
  965.  
  966.           For each AuthInformation value that represents authentication
  967.           information, the following statements are true:
  968.  
  969.           o    Its authDigest component is called the authentication
  970.                digest and represents the digest computed over an
  971.                appropriate portion of the message, where the message is
  972.                temporarily prefixed with a secret value for the purposes
  973.                of computing the digest.
  974.  
  975.           o    Its authSrcTimestamp component is called the
  976.                authentication timestamp and represents the time of the
  977.                generation of the message according to the partyAuthClock
  978.                of the SNMPv2 party that originated it.  Note that the
  979.                granularity of the authentication timestamp is 1 second.
  980.  
  981.           o    Its authDstTimestamp component is called the
  982.                authentication timestamp and represents the time of the
  983.                generation of the message according to the partyAuthClock
  984.                of the SNMPv2 party that is to receive it.  Note that the
  985.                granularity of the authentication timestamp is 1 second.
  986.  
  987.  
  988.           3.1.  Generating a Message
  989.  
  990.           This section describes the behavior of a SNMPv2 entity when it
  991.           acts as a SNMPv2 party for which the authentication protocol
  992.           is administratively specified as the Digest Authentication
  993.           Protocol.  Insofar as the behavior of a SNMPv2 entity when
  994.           transmitting protocol messages is defined generically in [1],
  995.           only those aspects of that behavior that are specific to the
  996.           Digest Authentication Protocol are described below.  In
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.           Galvin & McCloghrie                                  [Page 16]
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1009.  
  1010.  
  1011.           particular, this section describes the encapsulation of a
  1012.           SNMPv2 management communication into a SNMPv2 authenticated
  1013.           management communication.
  1014.  
  1015.           According to Section 3.1 of [1], a SnmpAuthMsg value is
  1016.           constructed during Step 3 of generic processing.  In
  1017.           particular, it states the authInfo component is constructed
  1018.           according to the authentication protocol identified for the
  1019.           SNMPv2 party originating the message.  When the relevant
  1020.           authentication protocol is the Digest Authentication Protocol,
  1021.           the procedure performed by a SNMPv2 entity whenever a
  1022.           management communication is to be transmitted by a SNMPv2
  1023.           party is as follows.
  1024.  
  1025.           (1)  The local database is consulted to determine the
  1026.                authentication clock and private authentication key
  1027.                (extracted, for example, according to the conventions
  1028.                defined in Section 1.5.1) of the SNMPv2 party originating
  1029.                the message.  The local database is also consulted to
  1030.                determine the authentication clock of the receiving
  1031.                SNMPv2 party.
  1032.  
  1033.           (2)  The authSrcTimestamp component is set to the retrieved
  1034.                authentication clock value of the message's source.  The
  1035.                authDstTimestamp component is set to the retrieved
  1036.                authentication clock value of the message's intended
  1037.                recipient.
  1038.  
  1039.           (3)  The authentication digest is temporarily set to the
  1040.                private authentication key of the SNMPv2 party
  1041.                originating the message.  The SnmpAuthMsg value is
  1042.                serialized according to the conventions of [13] and [12].
  1043.                A digest is computed over the octet sequence representing
  1044.                that serialized value using, for example, the algorithm
  1045.                specified in Section 1.5.1.  The authDigest component is
  1046.                set to the computed digest value.
  1047.  
  1048.           As set forth in [1], the SnmpAuthMsg value is then
  1049.           encapsulated according to the appropriate privacy protocol
  1050.           into a SnmpPrivMsg value.  This latter value is then
  1051.           serialized and transmitted to the receiving SNMPv2 party.
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.           Galvin & McCloghrie                                  [Page 17]
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1068.  
  1069.  
  1070.           3.2.  Receiving a Message
  1071.  
  1072.           This section describes the behavior of a SNMPv2 entity upon
  1073.           receipt of a protocol message from a SNMPv2 party for which
  1074.           the authentication protocol is administratively specified as
  1075.           the Digest Authentication Protocol.  Insofar as the behavior
  1076.           of a SNMPv2 entity when receiving protocol messages is defined
  1077.           generically in [1], only those aspects of that behavior that
  1078.           are specific to the Digest Authentication Protocol are
  1079.           described below.
  1080.  
  1081.           According to Section 3.2 of [1], a SnmpAuthMsg value is
  1082.           evaluated during Step 9 of generic processing.  In particular,
  1083.           it states the SnmpAuthMsg value is evaluated according to the
  1084.           authentication protocol identified for the SNMPv2 party that
  1085.           originated the message.  When the relevant authentication
  1086.           protocol is the Digest Authentication Protocol, the procedure
  1087.           performed by a SNMPv2 entity whenever a management
  1088.           communication is received by a SNMPv2 party is as follows.
  1089.  
  1090.           (1)  If the ASN.1 type of the authInfo component is not
  1091.                AuthInformation, the message is evaluated as unauthentic,
  1092.                and the snmpStatsBadAuths counter [14] is incremented.
  1093.                Otherwise, the authSrcTimestamp, authDstTimestamp, and
  1094.                authDigest components are extracted from the SnmpAuthMsg
  1095.                value.
  1096.  
  1097.           (2)  The local database is consulted to determine the
  1098.                authentication clock, private authentication key
  1099.                (extracted, for example, according to the conventions
  1100.                defined in Section 1.5.1), and lifetime of the SNMPv2
  1101.                party that originated the message.
  1102.  
  1103.           (3)  If the authSrcTimestamp component plus the lifetime is
  1104.                less than the authentication clock, the message is
  1105.                evaluated as unauthentic, and the snmpStatsNotInLifetimes
  1106.                counter [14] is incremented.
  1107.  
  1108.           (4)  The authDigest component is extracted and temporarily
  1109.                recorded.
  1110.  
  1111.           (5)  A new SnmpAuthMsg value is constructed such that its
  1112.                authDigest component is set to the private authentication
  1113.                key and its other components are set to the value of the
  1114.                corresponding components in the received SnmpAuthMsg
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.           Galvin & McCloghrie                                  [Page 18]
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1127.  
  1128.  
  1129.                value.  This new SnmpAuthMsg value is serialized
  1130.                according to the conventions of [13] and [12].  A digest
  1131.                is computed over the octet sequence representing that
  1132.                serialized value using, for example, the algorithm
  1133.                specified in Section 1.5.1.
  1134.  
  1135.                                             NOTE
  1136.                     Because serialization rules are unambiguous but may
  1137.                     not be unique, great care must be taken in
  1138.                     reconstructing the serialized value prior to
  1139.                     computing the digest.  Implementations may find it
  1140.                     useful to keep a copy of the original serialized
  1141.                     value and then simply modify the octets which
  1142.                     directly correspond to the placement of the
  1143.                     authDigest component, rather than re-applying the
  1144.                     serialization algorithm to the new SnmpAuthMsg
  1145.                     value.
  1146.  
  1147.           (6)  If the computed digest value is not equal to the digest
  1148.                value temporarily recorded in step 4 above, the message
  1149.                is evaluated as unauthentic, and the
  1150.                snmpStatsWrongDigestValues counter [14] is incremented.
  1151.  
  1152.           (7)  The message is evaluated as authentic.
  1153.  
  1154.           (8)  The local database is consulted for access privileges
  1155.                permitted by the local access policy to the originating
  1156.                SNMPv2 party with respect to the receiving SNMPv2 party.
  1157.                If any level of access is permitted, then:
  1158.  
  1159.                  the authentication clock value locally recorded for the
  1160.                  originating SNMPv2 party is advanced to the
  1161.                  authSrcTimestamp value if this latter exceeds the
  1162.                  recorded value; and,
  1163.  
  1164.                  the authentication clock value locally recorded for the
  1165.                  receiving SNMPv2 party is advanced to the
  1166.                  authDstTimestamp value if this latter exceeds the
  1167.                  recorded value.
  1168.  
  1169.               (Note that this step is conceptually independent from
  1170.               Steps 15-17 of Section 3.2 in [1]).
  1171.  
  1172.           If the SnmpAuthMsg value is evaluated as unauthentic, an
  1173.           authentication failure is noted and the received message is
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.           Galvin & McCloghrie                                  [Page 19]
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1186.  
  1187.  
  1188.           discarded without further processing.  Otherwise, processing
  1189.           of the received message continues as specified in [1].
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.           Galvin & McCloghrie                                  [Page 20]
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1245.  
  1246.  
  1247.           4.  Symmetric Privacy Protocol
  1248.  
  1249.           This section describes the Symmetric Privacy Protocol.  It
  1250.           provides for protection from disclosure of a received message.
  1251.           An appropriate portion of the message is encrypted according
  1252.           to a secret key known only to the originator and recipient of
  1253.           the message.
  1254.  
  1255.           This protocol assumes the underlying mechanism is a symmetric
  1256.           encryption algorithm.  In addition, the message to be
  1257.           encrypted must be protected according to the conventions of
  1258.           the Digest Authentication Protocol.
  1259.  
  1260.           Recall from [1] that a SNMPv2 private management communication
  1261.           is represented by an ASN.1 value with the following syntax:
  1262.  
  1263.                SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
  1264.                  privDst
  1265.                     OBJECT IDENTIFIER,
  1266.                  privData
  1267.                     [1] IMPLICIT OCTET STRING
  1268.                }
  1269.  
  1270.           For each SnmpPrivMsg value that represents a SNMPv2 private
  1271.           management communication, the following statements are true:
  1272.  
  1273.           o    Its privDst component is called the privacy destination
  1274.                and identifies the SNMPv2 party to which the
  1275.                communication is directed.
  1276.  
  1277.           o    Its privData component is called the privacy data and
  1278.                represents the (possibly encrypted) serialization
  1279.                (according to the conventions of [13] and [12]) of a
  1280.                SNMPv2 authenticated management communication.
  1281.  
  1282.  
  1283.           4.1.  Generating a Message
  1284.  
  1285.           This section describes the behavior of a SNMPv2 entity when it
  1286.           communicates with a SNMPv2 party for which the privacy
  1287.           protocol is administratively specified as the Symmetric
  1288.           Privacy Protocol.  Insofar as the behavior of a SNMPv2 entity
  1289.           when transmitting a protocol message is defined generically in
  1290.           [1], only those aspects of that behavior that are specific to
  1291.           the Symmetric Privacy Protocol are described below.  In
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.           Galvin & McCloghrie                                  [Page 21]
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1304.  
  1305.  
  1306.           particular, this section describes the encapsulation of a
  1307.           SNMPv2 authenticated management communication into a SNMPv2
  1308.           private management communication.
  1309.  
  1310.           According to Section 3.1 of [1], a SnmpPrivMsg value is
  1311.           constructed during Step 5 of generic processing.  In
  1312.           particular, it states the privData component is constructed
  1313.           according to the privacy protocol identified for the SNMPv2
  1314.           party receiving the message.  When the relevant privacy
  1315.           protocol is the Symmetric Privacy Protocol, the procedure
  1316.           performed by a SNMPv2 entity whenever a management
  1317.           communication is to be transmitted by a SNMPv2 party is as
  1318.           follows.
  1319.  
  1320.           (1)  If the SnmpAuthMsg value is not authenticated according
  1321.                to the conventions of the Digest Authentication Protocol,
  1322.                the generation of the private management communication
  1323.                fails according to a local procedure, without further
  1324.                processing.
  1325.  
  1326.           (2)  The local database is consulted to determine the private
  1327.                privacy key of the SNMPv2 party receiving the message
  1328.                (represented, for example, according to the conventions
  1329.                defined in Section 1.5.2).
  1330.  
  1331.           (3)  The SnmpAuthMsg value is serialized according to the
  1332.                conventions of [13] and [12].
  1333.  
  1334.           (4)  The octet sequence representing the serialized
  1335.                SnmpAuthMsg value is encrypted using, for example, the
  1336.                algorithm specified in Section 1.5.2 and the extracted
  1337.                private privacy key.
  1338.  
  1339.           (5)  The privData component is set to the encrypted value.
  1340.  
  1341.           As set forth in [1], the SnmpPrivMsg value is then serialized
  1342.           and transmitted to the receiving SNMPv2 party.
  1343.  
  1344.  
  1345.           4.2.  Receiving a Message
  1346.  
  1347.           This section describes the behavior of a SNMPv2 entity when it
  1348.           acts as a SNMPv2 party for which the privacy protocol is
  1349.           administratively specified as the Symmetric Privacy Protocol.
  1350.           Insofar as the behavior of a SNMPv2 entity when receiving a
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.           Galvin & McCloghrie                                  [Page 22]
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1363.  
  1364.  
  1365.           protocol message is defined generically in [1], only those
  1366.           aspects of that behavior that are specific to the Symmetric
  1367.           Privacy Protocol are described below.
  1368.  
  1369.           According to Section 3.2 of [1], the privData component of a
  1370.           received SnmpPrivMsg value is evaluated during Step 4 of
  1371.           generic processing.  In particular, it states the privData
  1372.           component is evaluated according to the privacy protocol
  1373.           identified for the SNMPv2 party receiving the message.  When
  1374.           the relevant privacy protocol is the Symmetric Privacy
  1375.           Protocol, the procedure performed by a SNMPv2 entity whenever
  1376.           a management communication is received by a SNMPv2 party is as
  1377.           follows.
  1378.  
  1379.           (1)  The local database is consulted to determine the private
  1380.                privacy key of the SNMPv2 party receiving the message
  1381.                (represented, for example, according to the conventions
  1382.                defined in Section 1.5.2).
  1383.  
  1384.           (2)  The contents octets of the privData component are
  1385.                decrypted using, for example, the algorithm specified in
  1386.                Section 1.5.2 and the extracted private privacy key.
  1387.  
  1388.           Processing of the received message continues as specified in
  1389.           [1].
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.           Galvin & McCloghrie                                  [Page 23]
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1422.  
  1423.  
  1424.           5.  Clock and Secret Distribution
  1425.  
  1426.           The protocols described in Sections 3 and 4 assume the
  1427.           existence of loosely synchronized clocks and shared secret
  1428.           values.  Three requirements constrain the strategy by which
  1429.           clock values and secrets are distributed.
  1430.  
  1431.           o    If the value of an authentication clock is decreased, the
  1432.                private authentication key must be changed concurrently.
  1433.  
  1434.                When the value of an authentication clock is decreased,
  1435.                messages that have been sent with a timestamp value
  1436.                between the value of the authentication clock and its new
  1437.                value may be replayed.  Changing the private
  1438.                authentication key obviates this threat.
  1439.  
  1440.           o    The private authentication key and private privacy key
  1441.                must be known only to the parties requiring knowledge of
  1442.                them.
  1443.  
  1444.                Protecting the secrets from disclosure is critical to the
  1445.                security of the protocols.  Knowledge of the secrets must
  1446.                be as restricted as possible within an implementation.
  1447.                In particular, although the secrets may be known to one
  1448.                or more persons during the initial configuration of a
  1449.                device, the secrets should be changed immediately after
  1450.                configuration such that their actual value is known only
  1451.                to the software.  A management station has the additional
  1452.                responsibility of recovering the state of all parties
  1453.                whenever it boots, and it may address this responsibility
  1454.                by recording the secrets on a long-term storage device.
  1455.                Access to information on this device must be as
  1456.                restricted as is practically possible.
  1457.  
  1458.           o    There must exist at least one SNMPv2 entity that assumes
  1459.                the role of a responsible management station.
  1460.  
  1461.                This management station is responsible for ensuring that
  1462.                all authentication clocks are synchronized and for
  1463.                changing the secret values when necessary.  Although more
  1464.                than one management station may share this
  1465.                responsibility, their coordination is essential to the
  1466.                secure management of the network.  The mechanism by which
  1467.                multiple management stations ensure that no more than one
  1468.                of them attempts to synchronize the clocks or update the
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.           Galvin & McCloghrie                                  [Page 24]
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1481.  
  1482.  
  1483.                secrets at any one time is a local implementation issue.
  1484.  
  1485.                A responsible management station may either support clock
  1486.                synchronization and secret distribution as separate
  1487.                functions, or combine them into a single functional unit.
  1488.  
  1489.           The first section below specifies the procedures by which a
  1490.           SNMPv2 entity is initially configured.  The next two sections
  1491.           describe one strategy for distributing clock values and one
  1492.           for determining a synchronized clock value among SNMPv2
  1493.           parties supporting the Digest Authentication Protocol.  For
  1494.           SNMPv2 parties supporting the Symmetric Privacy Protocol, the
  1495.           next section describes a strategy for distributing secret
  1496.           values.  The last section specifies the procedures by which a
  1497.           SNMPv2 entity recovers from a "crash."
  1498.  
  1499.  
  1500.           5.1.  Initial Configuration
  1501.  
  1502.           This section describes the initial configuration of a SNMPv2
  1503.           entity that supports the Digest Authentication Protocol or
  1504.           both the Digest Authentication Protocol and the Symmetric
  1505.           Privacy Protocol.
  1506.  
  1507.           When a network device is first installed, its initial, secure
  1508.           configuration must be done manually, i.e., a person must
  1509.           physically visit the device and enter the initial secret
  1510.           values for at least its first secure SNMPv2 party.  This
  1511.           requirement suggests that the person will have knowledge of
  1512.           the initial secret values.
  1513.  
  1514.           In general, the security of a system is enhanced as the number
  1515.           of entities that know a secret is reduced.  Requiring a person
  1516.           to physically visit a device every time a SNMPv2 party is
  1517.           configured not only exposes the secrets unnecessarily but is
  1518.           administratively prohibitive.  In particular, when MD5 is
  1519.           used, the initial authentication secret is 128 bits long and
  1520.           when DES is used an additional 128 bits are needed - 64 bits
  1521.           each for the key and initialization vector.  Clearly, these
  1522.           values will need to be recorded on a medium in order to be
  1523.           transported between a responsible management station and a
  1524.           managed agent.  The recommended procedure is to configure a
  1525.           small set of initial SNMPv2 parties for each SNMPv2 entity,
  1526.           one pair of which may be used initially to configure all other
  1527.           SNMPv2 parties.
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.           Galvin & McCloghrie                                  [Page 25]
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1540.  
  1541.  
  1542.           In fact, there is a minimal, useful set of SNMPv2 parties that
  1543.           could be configured between each responsible management
  1544.           station and managed agent.  This minimal set includes one of
  1545.           each of the following for both the responsible management
  1546.           station and the managed agent:
  1547.  
  1548.           o    a SNMPv2 party for which the authentication protocol and
  1549.                privacy protocol are the values noAuth and noPriv,
  1550.                respectively,
  1551.  
  1552.           o    a SNMPv2 party for which the authentication protocol
  1553.                identifies the mechanism defined in Section 1.5.1 and its
  1554.                privacy protocol is the value noPriv, and
  1555.  
  1556.           o    a SNMPv2 party for which the authentication protocol and
  1557.                privacy protocol identify the mechanisms defined in
  1558.                Section 1.5.1 and Section 1.5.2, respectively.
  1559.  
  1560.           The last of these SNMPv2 parties in both the responsible
  1561.           management station and the managed agent could be used to
  1562.           create all other SNMPv2 parties.
  1563.  
  1564.           Configuring one pair of SNMPv2 parties to be used to configure
  1565.           all other parties has the advantage of exposing only one pair
  1566.           of secrets - the secrets used to configure the minimal, useful
  1567.           set identified above.  To limit this exposure, the responsible
  1568.           management station should change these values as its first
  1569.           operation upon completion of the initial configuration.  In
  1570.           this way, secrets are known only to the peers requiring
  1571.           knowledge of them in order to communicate.
  1572.  
  1573.           The Management Information Base (MIB) document [4] supporting
  1574.           these security protocols specifies 6 initial party identities
  1575.           and initial values, which, by convention, are assigned to the
  1576.           parties and their associated parameters.
  1577.  
  1578.           These 6 initial parties are required to exist as part of the
  1579.           configuration of implementations when first installed, with
  1580.           the exception that implementations not providing support for a
  1581.           privacy protocol only need the 4 initial parties for which the
  1582.           privacy protocol is noPriv.  When installing a managed agent,
  1583.           these parties need to be configured with their initial
  1584.           secrets, etc., both in the responsible management station and
  1585.           in the new agent.
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.           Galvin & McCloghrie                                  [Page 26]
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1599.  
  1600.  
  1601.           If the responsible management station is configured first, it
  1602.           can be used to generate the initial secrets and provide them
  1603.           to a person, on a suitable medium, for distribution to the
  1604.           managed agent.  The following sequence of steps describes the
  1605.           initial configuration of a managed agent and its responsible
  1606.           management station.
  1607.  
  1608.           (1)  Determine the initial values for each of the attributes
  1609.                of the SNMPv2 party to be configured.  Some of these
  1610.                values may be computed by the responsible management
  1611.                station, some may be specified in the MIB document, and
  1612.                some may be administratively determined.
  1613.  
  1614.           (2)  Configure the parties in the responsible management
  1615.                station, according to the set of initial values.  If the
  1616.                management station is computing some initial values to be
  1617.                entered into the agent, an appropriate medium must be
  1618.                present to record the values.
  1619.  
  1620.           (3)  Configure the parties in the managed agent, according to
  1621.                the set of initial values.
  1622.  
  1623.           (4)  The responsible management station must synchronize the
  1624.                authentication clock values for each party it shares with
  1625.                each managed agent.  Section 5.3 specifies one strategy
  1626.                by which this could be accomplished.
  1627.  
  1628.           (5)  The responsible management station should change the
  1629.                secret values manually configured to ensure the actual
  1630.                values are known only to the peers requiring knowledge of
  1631.                them in order to communicate.  To do this, the management
  1632.                station generates new secrets for each party to be
  1633.                reconfigured and distributes the updates using any
  1634.                strategy which protects the new values from disclosure;
  1635.                use of a SNMPv2 set operation acting on the managed
  1636.                objects defined in [4] is such a strategy.  Upon
  1637.                receiving positive acknowledgement that the new values
  1638.                have been distributed, the management station should
  1639.                update its local database with the new values.
  1640.  
  1641.           If the managed agent does not support a protocol that protects
  1642.           messages from disclosure, e.g., the Symmetric Privacy Protocol
  1643.           (see section 5.4), then the distribution of new secrets, after
  1644.           the compromise of existing secrets, is not possible.  In this
  1645.           case, the new secrets can only be distributed by a physical
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.           Galvin & McCloghrie                                  [Page 27]
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1658.  
  1659.  
  1660.           visit to the device.
  1661.  
  1662.           If there are other SNMPv2 protocol entities requiring
  1663.           knowledge of the secrets, the responsible management station
  1664.           must distribute the information upon completion of the initial
  1665.           configuration.  The considerations, mentioned above,
  1666.           concerning the protection of secrets from disclosure, also
  1667.           apply in this case.
  1668.  
  1669.  
  1670.           5.2.  Clock Distribution
  1671.  
  1672.           A responsible management station must ensure that the
  1673.           authentication clock value for each SNMPv2 party for which it
  1674.           is responsible
  1675.  
  1676.           o    is loosely synchronized among all the local databases in
  1677.                which it appears,
  1678.  
  1679.           o    is reset, as indicated below, upon reaching its maximal
  1680.                value, and
  1681.  
  1682.           o    is non-decreasing, except as indicated below.
  1683.  
  1684.           The skew among the clock values must be accounted for in the
  1685.           lifetime value, in addition to the expected communication
  1686.           delivery delay.
  1687.  
  1688.           A skewed authentication clock may be detected by a number of
  1689.           strategies, including knowledge of the accuracy of the system
  1690.           clock, unauthenticated queries of the party database, and
  1691.           recognition of authentication failures originated by the
  1692.           party.
  1693.  
  1694.           Whenever clock skew is detected, and whenever the SNMPv2
  1695.           entities at both the responsible management station and the
  1696.           relevant managed agent support an appropriate privacy protocol
  1697.           (e.g., the Symmetric Privacy Protocol), a straightforward
  1698.           strategy for the correction of clock skew is simultaneous
  1699.           alteration of authentication clock and private key for the
  1700.           relevant SNMPv2 party.  If the request to alter the key and
  1701.           clock for a particular party originates from that same party,
  1702.           then, prior to transmitting that request, the local notion of
  1703.           the authentication clock is artificially advanced to assure
  1704.           acceptance of the request as authentic.
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.           Galvin & McCloghrie                                  [Page 28]
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1717.  
  1718.  
  1719.           More generally, however, since an authentication clock value
  1720.           need not be protected from disclosure, it is not necessary
  1721.           that a managed agent support a privacy protocol in order for a
  1722.           responsible management station to correct skewed clock values.
  1723.           The procedure for correcting clock skew in the general case is
  1724.           presented in Section 5.3.
  1725.  
  1726.           In addition to correcting skewed notions of authentication
  1727.           clocks, every SNMPv2 entity must react correctly as an
  1728.           authentication clock approaches its maximal value.  If the
  1729.           authentication clock for a particular SNMPv2 party ever
  1730.           reaches the maximal time value, the clock must halt at that
  1731.           value.  (The value of interest may be the maximum less
  1732.           lifetime.  When authenticating a message, its authentication
  1733.           timestamp is added to lifetime and compared to the
  1734.           authentication clock.  A SNMPv2 entity must guarantee that the
  1735.           sum is never greater than the maximal time value.) In this
  1736.           state, the only authenticated request a management station
  1737.           should generate for this party is one that alters the value of
  1738.           at least its authentication clock and private authentication
  1739.           key.  In order to reset these values, the responsible
  1740.           management station may set the authentication timestamp in the
  1741.           message to the maximal time value.
  1742.  
  1743.           The value of the authentication clock for a particular SNMPv2
  1744.           party must never be altered such that its new value is less
  1745.           than its old value, unless its private authentication key is
  1746.           also altered at the same time.
  1747.  
  1748.  
  1749.           5.3.  Clock Synchronization
  1750.  
  1751.           Unless the secrets are changed at the same time, the correct
  1752.           way to synchronize clocks is to advance the slower clock to be
  1753.           equal to the faster clock.  Suppose that party agentParty is
  1754.           realized by the SNMPv2 entity in a managed agent; suppose that
  1755.           party mgrParty is realized by the SNMPv2 entity in the
  1756.           corresponding responsible management station.  For any pair of
  1757.           parties, there are four possible conditions of the
  1758.           authentication clocks that could require correction:
  1759.  
  1760.           (1)  The management station's notion of the value of the
  1761.                authentication clock for agentParty exceeds the agent's
  1762.                notion.
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.           Galvin & McCloghrie                                  [Page 29]
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1776.  
  1777.  
  1778.           (2)  The management station's notion of the value of the
  1779.                authentication clock for mgrParty exceeds the agent's
  1780.                notion.
  1781.  
  1782.           (3)  The agent's notion of the value of the authentication
  1783.                clock for agentParty exceeds the management station's
  1784.                notion.
  1785.  
  1786.           (4)  The agent's notion of the value of the authentication
  1787.                clock for mgrParty exceeds the management station's
  1788.                notion.
  1789.  
  1790.           The selective clock acceleration mechanism intrinsic to the
  1791.           protocol corrects conditions 1, 2 and 3 as part of the normal
  1792.           processing of an authentic message.  Therefore, the clock
  1793.           adjustment procedure below does not provide for any
  1794.           adjustments in those cases.  Rather, the following sequence of
  1795.           steps specifies how the clocks may be synchronized when
  1796.           condition 4 is manifest.
  1797.  
  1798.           (1)  The responsible management station saves its existing
  1799.                notion of the authentication clock for the party
  1800.                mgrParty.
  1801.  
  1802.           (2)  The responsible management station retrieves the
  1803.                authentication clock value for mgrParty from the agent.
  1804.                This retrieval must be an unauthenticated request, since
  1805.                the management station does not know if the clocks are
  1806.                synchronized.  If the request fails, the clocks cannot be
  1807.                synchronized, and the clock adjustment procedure is
  1808.                aborted without further processing.
  1809.  
  1810.           (3)  If the notion of the authentication clock for mgrParty
  1811.                just retrieved from the agent exceeds the management
  1812.                station's notion, then condition 4 is manifest, and the
  1813.                responsible management station advances its notion of the
  1814.                authentication clock for mgrParty to match the agent's
  1815.                notion.
  1816.  
  1817.           (4)  The responsible management station retrieves the
  1818.                authentication clock value for mgrParty from the agent.
  1819.                This retrieval must be an authenticated request, in order
  1820.                that the management station may verify that the clock
  1821.                value is properly synchronized.  If this authenticated
  1822.                query fails, then the management station restores its
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.           Galvin & McCloghrie                                  [Page 30]
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1835.  
  1836.  
  1837.                previously saved notion of the clock value, and the clock
  1838.                adjustment procedure is aborted without further
  1839.                processing.  Otherwise, clock synchronization has been
  1840.                successfully realized.
  1841.  
  1842.           Administrative advancement of a clock as described above does
  1843.           not introduce any new vulnerabilities, since the value of the
  1844.           clock is intended to increase with the passage of time.  A
  1845.           potential operational problem is the rejection of authentic
  1846.           management operations that were authenticated using a previous
  1847.           value of the relevant party clock.  This possibility may be
  1848.           avoided if a management station suppresses generation of
  1849.           management traffic between relevant parties while this clock
  1850.           adjustment procedure is in progress.
  1851.  
  1852.  
  1853.           5.4.  Secret Distribution
  1854.  
  1855.           This section describes one strategy by which a SNMPv2 entity
  1856.           that supports both the Digest Authentication Protocol and the
  1857.           Symmetric Privacy Protocol can change the secrets for a
  1858.           particular SNMPv2 party.
  1859.  
  1860.           The frequency with which the secrets of a SNMPv2 party should
  1861.           be changed is a local administrative issue.  However, the more
  1862.           frequently a secret is used, the more frequently it should be
  1863.           changed.  At a minimum, the secrets must be changed whenever
  1864.           the associated authentication clock approaches its maximal
  1865.           value (see Section 6).  Note that, owing to both
  1866.           administrative and automatic advances of the authentication
  1867.           clock described in this memo, the authentication clock for a
  1868.           SNMPv2 party may well approach its maximal value sooner than
  1869.           might otherwise be expected.
  1870.  
  1871.           The following sequence of steps specifies how a responsible
  1872.           management station alters a secret value (i.e., the private
  1873.           authentication key or the private privacy key) for a
  1874.           particular SNMPv2 party.  There are two cases.
  1875.  
  1876.           First, setting the initial secret for a new party:
  1877.  
  1878.           (1)  The responsible management station generates a new secret
  1879.                value.
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.           Galvin & McCloghrie                                  [Page 31]
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1894.  
  1895.  
  1896.           (2)  The responsible management station encapsulates a SNMPv2
  1897.                setRequest in a SNMPv2 private management communication
  1898.                with at least the following properties.
  1899.  
  1900.                     Its source supports the Digest Authentication
  1901.                     Protocol and the Symmetric Privacy Protocol.
  1902.  
  1903.                     Its destination supports the Symmetric Privacy
  1904.                     Protocol and the Digest Authentication Protocol.
  1905.  
  1906.           (3)  The SNMPv2 private management communication is
  1907.                transmitted to its destination.
  1908.  
  1909.           (4)  Upon receiving the request, the recipient processes the
  1910.                message according to [12] and [1].
  1911.  
  1912.           (5)  The recipient encapsulates a SNMPv2 response in a SNMPv2
  1913.                private management communication with at least the
  1914.                following properties.
  1915.  
  1916.                     Its source supports the Digest Authentication
  1917.                     Protocol and the Symmetric Privacy Protocol.
  1918.  
  1919.                     Its destination supports the Symmetric Privacy
  1920.                     Protocol and the Digest Authentication Protocol.
  1921.  
  1922.           (6)  The SNMPv2 private management communication is
  1923.                transmitted to its destination.
  1924.  
  1925.           (7)  Upon receiving the response, the responsible management
  1926.                station updates its local database with the new value.
  1927.  
  1928.           Second, modifying the current secret of an existing party:
  1929.  
  1930.           (1)  The responsible management station generates a new secret
  1931.                value.
  1932.  
  1933.           (2)  The responsible management station encapsulates a SNMPv2
  1934.                setRequest in a SNMPv2 management communication with at
  1935.                least the following properties.
  1936.  
  1937.                     Its source and destination supports the Digest
  1938.                     Authentication Protocol.
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.           Galvin & McCloghrie                                  [Page 32]
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.           RFC 1446        Security Protocols for SNMPv2       April 1993
  1953.  
  1954.  
  1955.           (3)  The SNMPv2 private management communication is
  1956.                transmitted to its destination.
  1957.  
  1958.           (4)  Upon receiving the request, the recipient processes the
  1959.                message according to [12] and [1].
  1960.  
  1961.           (5)  The recipient encapsulates a SNMPv2 response in a SNMPv2
  1962.                management communication with at least the following
  1963.                properties.
  1964.  
  1965.                     Its source and destination supports the Digest
  1966.                     Authentication Protocol.
  1967.  
  1968.           (6)  The SNMPv2 management communication is transmitted to its
  1969.                destination.
  1970.  
  1971.           (7)  Upon receiving the response, the responsible management
  1972.                station updates its local database with the new value.
  1973.  
  1974.           If the responsible management station does not receive a
  1975.           response to its request, there are two possible causes.
  1976.  
  1977.           o    The request may not have been delivered to the
  1978.                destination.
  1979.  
  1980.           o    The response may not have been delivered to the
  1981.                originator of the request.
  1982.  
  1983.           In order to distinguish the two possible error conditions, a
  1984.           responsible management station could check the destination to
  1985.           see if the change has occurred.  Unfortunately, since the
  1986.           secret values are unreadable, this is not directly possible.
  1987.  
  1988.           The recommended strategy for verifying key changes is to set
  1989.           the public value corresponding to the secret being changed to
  1990.           a recognizable, novel value: that is, alter the public
  1991.           authentication key value for the relevant party when changing
  1992.           its private authentication key, or alter its public privacy
  1993.           key value when changing its private privacy key.  In this way,
  1994.           the responsible management station may retrieve the public
  1995.           value when a response is not received, and verify whether or
  1996.           not the change has taken place.  (This strategy is available
  1997.           since the public values are not used by the protocols defined
  1998.           in this memo.  If this strategy is employed, then the public
  1999.           values are significant in this context.  Of course, protocols
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.           Galvin & McCloghrie                                  [Page 33]
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2012.  
  2013.  
  2014.           using the public values may make use of this strategy
  2015.           directly.)
  2016.  
  2017.           One other scenario worthy of mention is using a SNMPv2 party
  2018.           to change its own secrets.  In this case, the destination will
  2019.           change its local database prior to generating a response.
  2020.           Thus, the response will be constructed according to the new
  2021.           value.  However, the responsible management station will not
  2022.           update its local database until after the response is
  2023.           received.  This suggests the responsible management station
  2024.           may receive a response which will be evaluated as unauthentic,
  2025.           unless the correct secret is used.  The responsible management
  2026.           station may either account for this scenario as a special
  2027.           case, or use an alteration of the relevant public values (as
  2028.           described above) to verify the key change.
  2029.  
  2030.           Note, during the period of time after the request has been
  2031.           sent and before the response is received, the management
  2032.           station must keep track of both the old and new secret values.
  2033.           Since the delay may be the result of a network failure, the
  2034.           management station must be prepared to retain both values for
  2035.           an extended period of time, including across reboots.
  2036.  
  2037.  
  2038.           5.5.  Crash Recovery
  2039.  
  2040.           This section describes the requirements for SNMPv2 protocol
  2041.           entities in connection with recovery from system crashes or
  2042.           other service interruptions.
  2043.  
  2044.           For each SNMPv2 party in the local database for a particular
  2045.           SNMPv2 entity, its identity, authentication clock, private
  2046.           authentication key, and private privacy key must enjoy non-
  2047.           volatile, incorruptible representations.  If possible,
  2048.           lifetime should also enjoy a non-volatile, incorruptible
  2049.           representation.  If said SNMPv2 entity supports other security
  2050.           protocols or algorithms in addition to the two defined in this
  2051.           memo, then the authentication protocol and the privacy
  2052.           protocol for each party also require non-volatile,
  2053.           incorruptible representation.
  2054.  
  2055.           The authentication clock of a SNMPv2 party is a critical
  2056.           component of the overall security of the protocols.  The
  2057.           inclusion of a reliable representation of a clock in a SNMPv2
  2058.           entity is required for overall security.  A reliable clock
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.           Galvin & McCloghrie                                  [Page 34]
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2071.  
  2072.  
  2073.           representation ensures that a clock's value is monotonically
  2074.           increasing, even across a power loss or other system failure
  2075.           of the local SNMPv2 entity.  One example of a reliable clock
  2076.           representation is that provided by battery-powered clock-
  2077.           calendar devices incorporated into some contemporary systems.
  2078.           Another example is storing and updating a clock value in non-
  2079.           volatile storage at a frequency of once per U (e.g., 24)
  2080.           hours, and re-initialising that clock value on every reboot as
  2081.           the stored value plus U+1 hours.  It is assumed that
  2082.           management stations always support reliable clock
  2083.           representations, where clock adjustment by a human operator
  2084.           during crash recovery may contribute to that reliability.
  2085.  
  2086.           If a managed agent crashes and does not reboot in time for its
  2087.           responsible management station to prevent its authentication
  2088.           clock from reaching its maximal value, upon reboot the clock
  2089.           must be halted at its maximal value.  The procedures specified
  2090.           in Section 5.3 would then apply.
  2091.  
  2092.           Upon recovery, those attributes of each SNMPv2 party that do
  2093.           not enjoy non-volatile or reliable representation are
  2094.           initialized as follows.
  2095.  
  2096.           o    If the private authentication key is not the OCTET STRING
  2097.                of zero length, the authentication protocol is set to
  2098.                identify use of the Digest Authentication Protocol in
  2099.                conjunction with the algorithm specified in Section
  2100.                1.5.1.
  2101.  
  2102.           o    If the lifetime is not retained, it should be initialized
  2103.                to zero.
  2104.  
  2105.           o    If the private privacy key is not the OCTET STRING of
  2106.                zero length, the privacy protocol is set to identify use
  2107.                of the Symmetric Privacy Protocol in conjunction with the
  2108.                algorithm specified in Section 1.5.2.
  2109.  
  2110.           Upon detecting that a managed agent has rebooted, a
  2111.           responsible management station must reset all other party
  2112.           attributes, including the lifetime if it was not retained.  In
  2113.           order to reset the lifetime, the responsible management
  2114.           station should set the authentication timestamp in the message
  2115.           to the sum of the authentication clock and desired lifetime.
  2116.           This is an artificial advancement of the authentication
  2117.           timestamp in order to guarantee the message will be authentic
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.           Galvin & McCloghrie                                  [Page 35]
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2130.  
  2131.  
  2132.           when received by the recipient.
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.           Galvin & McCloghrie                                  [Page 36]
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2189.  
  2190.  
  2191.           6.  Security Considerations
  2192.  
  2193.           This section highlights security considerations relevant to
  2194.           the protocols and procedures defined in this memo.  Practices
  2195.           that contribute to secure, effective operation of the
  2196.           mechanisms defined here are described first.  Constraints on
  2197.           implementation behavior that are necessary to the security of
  2198.           the system are presented next.  Finally, an informal account
  2199.           of the contribution of each mechanism of the protocols to the
  2200.           required goals is presented.
  2201.  
  2202.  
  2203.           6.1.  Recommended Practices
  2204.  
  2205.           This section describes practices that contribute to the
  2206.           secure, effective operation of the mechanisms defined in this
  2207.           memo.
  2208.  
  2209.           o    A management station should discard SNMPv2 responses for
  2210.                which neither the request-id component nor the
  2211.                represented management information corresponds to any
  2212.                currently outstanding request.
  2213.  
  2214.                Although it would be typical for a management station to
  2215.                do this as a matter of course, in the context of these
  2216.                security protocols it is significant owing to the
  2217.                possibility of message duplication (malicious or
  2218.                otherwise).
  2219.  
  2220.           o    A management station should not interpret an agent's lack
  2221.                of response to an authenticated SNMPv2 management
  2222.                communication as a conclusive indication of agent or
  2223.                network failure.
  2224.  
  2225.                It is possible for authentication failure traps to be
  2226.                lost or suppressed as a result of authentication clock
  2227.                skew or inconsistent notions of shared secrets.  In order
  2228.                either to facilitate administration of such SNMPv2
  2229.                parties or to provide for continued management in times
  2230.                of network stress, a management station implementation
  2231.                may provide for arbitrary, artificial advancement of the
  2232.                timestamp or selection of shared secrets on locally
  2233.                generated messages.
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.           Galvin & McCloghrie                                  [Page 37]
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2248.  
  2249.  
  2250.           o    The lifetime value for a SNMPv2 party should be chosen
  2251.                (by the local administration) to be as small as possible,
  2252.                given the accuracy of clock devices available, relevant
  2253.                round-trip communications delays, and the frequency with
  2254.                which a responsible management station will be able to
  2255.                verify all clock values.
  2256.  
  2257.                A large lifetime increases the vulnerability to malicious
  2258.                delays of SNMPv2 messages.  The implementation of a
  2259.                management station may accommodate changing network
  2260.                conditions during periods of network stress by
  2261.                effectively increasing the lifetimes of the source and
  2262.                destination parties.  The management station accomplishes
  2263.                this by artificially advancing its notion of the source
  2264.                party's clock on messages it sends, and by artificially
  2265.                increasing its notion of the source party`s lifetime on
  2266.                messages it receives.
  2267.  
  2268.           o    When sending state altering messages to a managed agent,
  2269.                a management station should delay sending successive
  2270.                messages to the managed agent until a positive
  2271.                acknowledgement is received for the previous message or
  2272.                until the previous message expires.
  2273.  
  2274.                No message ordering is imposed by the SNMPv2.  Messages
  2275.                may be received in any order relative to their time of
  2276.                generation and each will be processed in the ordered
  2277.                received.  Note that when an authenticated message is
  2278.                sent to a managed agent, it will be valid for a period of
  2279.                time that does not exceed lifetime under normal
  2280.                circumstances, and is subject to replay during this
  2281.                period.
  2282.  
  2283.                Indeed, a management station must cope with the loss and
  2284.                re-ordering of messages resulting from anomalies in the
  2285.                network as a matter of course.
  2286.  
  2287.                However, a managed object, snmpSetSerialNo [14], is
  2288.                specifically defined for use with SNMPv2 set operations
  2289.                in order to provide a mechanism to ensure the processing
  2290.                of SNMPv2 messages occurs in a specific order.
  2291.  
  2292.           o    The frequency with which the secrets of a SNMPv2 party
  2293.                should be changed is indirectly related to the frequency
  2294.                of their use.
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.           Galvin & McCloghrie                                  [Page 38]
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2307.  
  2308.  
  2309.                Protecting the secrets from disclosure is critical to the
  2310.                overall security of the protocols.  Frequent use of a
  2311.                secret provides a continued source of data that may be
  2312.                useful to a cryptanalyst in exploiting known or perceived
  2313.                weaknesses in an algorithm.  Frequent changes to the
  2314.                secret avoid this vulnerability.
  2315.  
  2316.                Changing a secret after each use is generally regarded as
  2317.                the most secure practice, but a significant amount of
  2318.                overhead may be associated with that approach.
  2319.  
  2320.                Note, too, in a local environment the threat of
  2321.                disclosure may be insignificant, and as such the changing
  2322.                of secrets may be less frequent.  However, when public
  2323.                data networks are the communication paths, more caution
  2324.                is prudent.
  2325.  
  2326.           o    In order to foster the greatest degree of security, a
  2327.                management station implementation must support
  2328.                constrained, pairwise sharing of secrets among SNMPv2
  2329.                entities as its default mode of operation.
  2330.  
  2331.                Owing to the use of symmetric cryptography in the
  2332.                protocols defined here, the secrets associated with a
  2333.                particular SNMPv2 party must be known to all other SNMPv2
  2334.                parties with which that party may wish to communicate.
  2335.                As the number of locations at which secrets are known and
  2336.                used increases, the likelihood of their disclosure also
  2337.                increases, as does the potential impact of that
  2338.                disclosure.  Moreover, if the set of SNMPv2 protocol
  2339.                entities with knowledge of a particular secret numbers
  2340.                more than two, data origin cannot be reliably
  2341.                authenticated because it is impossible to determine with
  2342.                any assurance which entity of that set may be the
  2343.                originator of a particular SNMPv2 message.  Thus, the
  2344.                greatest degree of security is afforded by configurations
  2345.                in which the secrets for each SNMPv2 party are known to
  2346.                at most two protocol entities.
  2347.  
  2348.  
  2349.           6.2.  Conformance
  2350.  
  2351.           A SNMPv2 entity implementation that claims conformance to this
  2352.           memo must satisfy the following requirements:
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.           Galvin & McCloghrie                                  [Page 39]
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2366.  
  2367.  
  2368.           (1)  It must implement the noAuth and noPriv protocols whose
  2369.                object identifiers are defined in [4].
  2370.  
  2371.                     noAuth  This protocol signifies that messages
  2372.                     generated by a party using it are not protected as
  2373.                     to origin or integrity.  It is required to ensure
  2374.                     that a party's authentication clock is always
  2375.                     accessible.
  2376.  
  2377.                     noPriv  This protocol signifies that messages
  2378.                     received by a party using it are not protected from
  2379.                     disclosure.  It is required to ensure that a party's
  2380.                     authentication clock is always accessible.
  2381.  
  2382.           (2)  It must implement the Digest Authentication Protocol in
  2383.                conjunction with the algorithm defined in Section 1.5.1.
  2384.  
  2385.           (3)  It must include in its local database at least one SNMPv2
  2386.                party with the following parameters set as follows:
  2387.  
  2388.                     partyAuthProtocol is set to noAuth and
  2389.  
  2390.                     partyPrivProtocol is set to noPriv.
  2391.  
  2392.                This party must have a MIB view [1] specified that
  2393.                includes at least the authentication clock of all other
  2394.                parties.  Alternatively, the authentication clocks of the
  2395.                other parties may be partitioned among several similarly
  2396.                configured parties according to a local implementation
  2397.                convention.
  2398.  
  2399.           (4)  For each SNMPv2 party about which it maintains
  2400.                information in a local database, an implementation must
  2401.                satisfy the following requirements:
  2402.  
  2403.                     (a) It must not allow a party's parameters to be set
  2404.                     to a value inconsistent with its expected syntax.
  2405.                     In particular, Section 1.4 specifies constraints for
  2406.                     the chosen mechanisms.
  2407.  
  2408.                     (b) It must, to the maximal extent possible,
  2409.                     prohibit read-access to the private authentication
  2410.                     key and private encryption key under all
  2411.                     circumstances except as required to generate and/or
  2412.                     validate SNMPv2 messages with respect to that party.
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.           Galvin & McCloghrie                                  [Page 40]
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2425.  
  2426.  
  2427.                     This prohibition includes prevention of read-access
  2428.                     by the entity's human operators.
  2429.  
  2430.                     (c) It must allow the party's authentication clock
  2431.                     to be publicly accessible.  The correct operation of
  2432.                     the Digest Authentication Protocol requires that it
  2433.                     be possible to determine this value at all times in
  2434.                     order to guarantee that skewed authentication clocks
  2435.                     can be resynchronized.
  2436.  
  2437.                     (d) It must prohibit alterations to its record of
  2438.                     the authentication clock for that party
  2439.                     independently of alterations to its record of the
  2440.                     private authentication key (unless the clock
  2441.                     alteration is an advancement).
  2442.  
  2443.                     (e) It must never allow its record of the
  2444.                     authentication clock for that party to be
  2445.                     incremented beyond the maximal time value and so
  2446.                     "roll-over" to zero.
  2447.  
  2448.                     (f) It must never increase its record of the
  2449.                     lifetime for that party except as may be explicitly
  2450.                     authorized (via imperative command or securely
  2451.                     represented configuration information) by the
  2452.                     responsible network administrator.
  2453.  
  2454.                     (g) In the event that the non-volatile,
  2455.                     incorruptible representations of a party's
  2456.                     parameters (in particular, either the private
  2457.                     authentication key or private encryption key) are
  2458.                     lost or destroyed, it must alter its record of these
  2459.                     quantities to random values so subsequent
  2460.                     interaction with that party requires manual
  2461.                     redistribution of new secrets and other parameters.
  2462.  
  2463.           (5)  If it selects new value(s) for a party's secret(s), it
  2464.                must avoid bad or obvious choices for said secret(s).
  2465.                Choices to be avoided are boundary values (such as all-
  2466.                zeros) and predictable values (such as the same value as
  2467.                previously or selecting from a predetermined set).
  2468.  
  2469.           (6)  It must ensure that a received message for which the
  2470.                originating party uses the Digest Authentication Protocol
  2471.                but the receiving party does not, is always declared to
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.           Galvin & McCloghrie                                  [Page 41]
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2484.  
  2485.  
  2486.                be unauthentic.  This may be achieved explicitly via an
  2487.                additional step in the procedure for processing a
  2488.                received message, or implicitly by verifying that all
  2489.                local access control policies enforce this requirement.
  2490.  
  2491.  
  2492.           6.3.  Protocol Correctness
  2493.  
  2494.           The correctness of these SNMPv2 security protocols with
  2495.           respect to the stated goals depends on the following
  2496.           assumptions:
  2497.  
  2498.           (1)  The chosen message digest algorithm satisfies its design
  2499.                criteria.  In particular, it must be computationally
  2500.                infeasible to discover two messages that share the same
  2501.                digest value.
  2502.  
  2503.           (2)  It is computationally infeasible to determine the secret
  2504.                used in calculating a digest on the concatenation of the
  2505.                secret and a message when both the digest and the message
  2506.                are known.
  2507.  
  2508.           (3)  The chosen symmetric encryption algorithm satisfies its
  2509.                design criteria.  In particular, it must be
  2510.                computationally infeasible to determine the cleartext
  2511.                message from the ciphertext message without knowledge of
  2512.                the key used in the transformation.
  2513.  
  2514.           (4)  Local notions of a party's authentication clock while it
  2515.                is associated with a specific private key value are
  2516.                monotonically non-decreasing (i.e., they never run
  2517.                backwards) in the absence of administrative
  2518.                manipulations.
  2519.  
  2520.           (5)  The secrets for a particular SNMPv2 party are known only
  2521.                to authorized SNMPv2 protocol entities.
  2522.  
  2523.           (6)  Local notions of the authentication clock for a
  2524.                particular SNMPv2 party are never altered such that the
  2525.                authentication clock's new value is less than the current
  2526.                value without also altering the private authentication
  2527.                key.
  2528.  
  2529.           For each mechanism of the protocol, an informal account of its
  2530.           contribution to the required goals is presented below.
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.           Galvin & McCloghrie                                  [Page 42]
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2543.  
  2544.  
  2545.           Pseudocode fragments are provided where appropriate to
  2546.           exemplify possible implementations; they are intended to be
  2547.           self-explanatory.
  2548.  
  2549.  
  2550.           6.3.1.  Clock Monotonicity Mechanism
  2551.  
  2552.           By pairing each sequence of a clock's values with a unique
  2553.           key, the protocols partially realize goal 3, and the
  2554.           conjunction of this property with assumption 6 above is
  2555.           sufficient for the claim that, with respect to a specific
  2556.           private key value, all local notions of a party's
  2557.           authentication clock are, in general, non-decreasing with
  2558.           time.
  2559.  
  2560.  
  2561.           6.3.2.  Data Integrity Mechanism
  2562.  
  2563.           The protocols require computation of a message digest computed
  2564.           over the SNMPv2 message prepended by the secret for the
  2565.           relevant party.  By virtue of this mechanism and assumptions 1
  2566.           and 2, the protocols realize goal 1.
  2567.  
  2568.           Normally, the inclusion of the message digest value with the
  2569.           digested message would not be sufficient to guarantee data
  2570.           integrity, since the digest value can be modified in addition
  2571.           to the message while it is enroute.  However, since not all of
  2572.           the digested message is included in the transmission to the
  2573.           destination, it is not possible to substitute both a message
  2574.           and a digest value while enroute to a destination.
  2575.  
  2576.           Strictly speaking, the specified strategy for data integrity
  2577.           does not detect a SNMPv2 message modification which appends
  2578.           extraneous material to the end of such messages.  However,
  2579.           owing to the representation of SNMPv2 messages as ASN.1
  2580.           values, such modifications cannot - consistent with goal 1 -
  2581.           result in unauthorized management operations.
  2582.  
  2583.           The data integrity mechanism specified in this memo protects
  2584.           only against unauthorized modification of individual SNMPv2
  2585.           messages.  A more general data integrity service that affords
  2586.           protection against the threat of message stream modification
  2587.           is not realized by this mechanism, although limited protection
  2588.           against reordering, delay, and duplication of messages within
  2589.           a message stream are provided by other mechanisms of the
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.           Galvin & McCloghrie                                  [Page 43]
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2602.  
  2603.  
  2604.           protocol.
  2605.  
  2606.  
  2607.           6.3.3.  Data Origin Authentication Mechanism
  2608.  
  2609.           The data integrity mechanism requires the use of a secret
  2610.           value known only to communicating parties.  By virtue of this
  2611.           mechanism and assumptions 1 and 2, the protocols explicitly
  2612.           prevent unauthorized modification of messages.  Data origin
  2613.           authentication is implicit if the message digest value can be
  2614.           verified.  That is, the protocols realize goal 2.
  2615.  
  2616.  
  2617.           6.3.4.  Restricted Administration Mechanism
  2618.  
  2619.           This memo requires that implementations preclude
  2620.           administrative alterations of the authentication clock for a
  2621.           particular party independently from its private authentication
  2622.           key (unless that clock alteration is an advancement).  An
  2623.           example of an efficient implementation of this restriction is
  2624.           provided in a pseudocode fragment below.  This pseudocode
  2625.           fragment meets the requirements of assumption 6.  Observe that
  2626.           the requirement is not for simultaneous alteration but to
  2627.           preclude independent alteration.  This latter requirement is
  2628.           fairly easily realized in a way that is consistent with the
  2629.           defined semantics of the SNMPv2 set operation.
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.           Galvin & McCloghrie                                  [Page 44]
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2661.  
  2662.  
  2663.                Void partySetKey (party, newKeyValue)
  2664.                {
  2665.                    if (party->clockAltered) {
  2666.                       party->clockAltered = FALSE;
  2667.                       party->keyAltered = FALSE;
  2668.                       party->keyInUse = newKeyValue;
  2669.                       party->clockInUse = party->clockCache;
  2670.                    }
  2671.                    else {
  2672.                       party->keyAltered = TRUE;
  2673.                       party->keyCache = newKeyValue;
  2674.                    }
  2675.                }
  2676.  
  2677.                Void partySetClock (party, newClockValue)
  2678.                {
  2679.                    if (party->keyAltered) {
  2680.                       party->keyAltered = FALSE;
  2681.                       party->clockAltered = FALSE;
  2682.                       party->clockInUse = newClockValue;
  2683.                       party->keyInUse = party->keyCache;
  2684.                    }
  2685.                    else {
  2686.                       party->clockAltered = TRUE;
  2687.                       party->clockCache = newClockValue;
  2688.                    }
  2689.                }
  2690.  
  2691.  
  2692.           6.3.5.  Message Timeliness Mechanism
  2693.  
  2694.           The definition of the SNMPv2 security protocols requires that,
  2695.           if the authentication timestamp value on a received message -
  2696.           augmented by an administratively chosen lifetime value - is
  2697.           less than the local notion of the clock for the originating
  2698.           SNMPv2 party, the message is not delivered.
  2699.  
  2700.  
  2701.                if (timestampOfReceivedMsg +
  2702.                       party->administrativeLifetime <=
  2703.                       party->localNotionOfClock) {
  2704.                       msgIsValidated = FALSE;
  2705.                }
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.           Galvin & McCloghrie                                  [Page 45]
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2720.  
  2721.  
  2722.           By virtue of this mechanism, the protocols realize goal 3.  In
  2723.           cases in which the local notions of a particular SNMPv2 party
  2724.           clock are moderately well-synchronized, the timeliness
  2725.           mechanism effectively limits the age of validly delivered
  2726.           messages.  Thus, if an attacker diverts all validated messages
  2727.           for replay much later, the delay introduced by this attack is
  2728.           limited to a period that is proportional to the skew among
  2729.           local notions of the party clock.
  2730.  
  2731.  
  2732.           6.3.6.  Selective Clock Acceleration Mechanism
  2733.  
  2734.           The definition of the SNMPv2 security protocols requires that,
  2735.           if either of the timestamp values for the originating or
  2736.           receiving parties on a received, validated message exceeds the
  2737.           corresponding local notion of the clock for that party, then
  2738.           the local notion of the clock for that party is adjusted
  2739.           forward to correspond to said timestamp value.  This mechanism
  2740.           is neither strictly necessary nor sufficient to the security
  2741.           of the protocol; rather, it fosters the clock synchronization
  2742.           on which valid message delivery depends - thereby enhancing
  2743.           the effectiveness of the protocol in a management context.
  2744.  
  2745.  
  2746.                if (msgIsValidated) {
  2747.                       if (timestampOfReceivedMsg >
  2748.                             party->localNotionOfClock) {
  2749.                             party->localNotionOfClock =
  2750.                                   timestampOfReceivedMsg;
  2751.                       }
  2752.                }
  2753.  
  2754.  
  2755.           The effect of this mechanism is to synchronize local notions
  2756.           of a party clock more closely in the case where a sender's
  2757.           notion is more advanced than a receiver's.  In the opposite
  2758.           case, this mechanism has no effect on local notions of a party
  2759.           clock and either the received message is validly delivered or
  2760.           not according to other mechanisms of the protocol.
  2761.  
  2762.           Operation of this mechanism does not, in general, improve the
  2763.           probability of validated delivery for messages generated by
  2764.           party participants whose local notion of the party clock is
  2765.           relatively less advanced.  In this case, queries from a
  2766.           management station may not be validly delivered and the
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.           Galvin & McCloghrie                                  [Page 46]
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2779.  
  2780.  
  2781.           management station needs to react appropriately (e.g., by use
  2782.           of the strategy described in section 5.3).  In contrast, the
  2783.           delivery of SNMPv2 trap messages generated by an agent that
  2784.           suffers from a less advanced notion of a party clock is more
  2785.           problematic, for an agent may lack the capacity to recognize
  2786.           and react to security failures that prevent delivery of its
  2787.           messages.  Thus, the inherently unreliable character of trap
  2788.           messages is likely to be compounded by attempts to provide for
  2789.           their validated delivery.
  2790.  
  2791.  
  2792.           6.3.7.  Confidentiality Mechanism
  2793.  
  2794.           The protocols require the use of a symmetric encryption
  2795.           algorithm when the data confidentiality service is required.
  2796.           By virtue of this mechanism and assumption 3, the protocols
  2797.           realize goal 4.
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.           Galvin & McCloghrie                                  [Page 47]
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2838.  
  2839.  
  2840.           7.  Acknowledgements
  2841.  
  2842.           This document is based, almost entirely, on RFC 1352.
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.           Galvin & McCloghrie                                  [Page 48]
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2897.  
  2898.  
  2899.           8.  References
  2900.  
  2901.           [1]  Galvin, J., and McCloghrie, K., "Administrative Model for
  2902.                version 2 of the Simple Network Management Protocol
  2903.                (SNMPv2)", RFC 1445, Trusted Information Systems, Hughes
  2904.                LAN Systems, April 1993.
  2905.  
  2906.           [2]  Case, J., Fedor, M., Schoffstall, M., Davin, J., "Simple
  2907.                Network Management Protocol", STD 15, RFC 1157, SNMP
  2908.                Research, Performance Systems International, MIT
  2909.                Laboratory for Computer Science, May 1990.
  2910.  
  2911.           [3]  Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
  2912.                MIT Laboratory for Computer Science, April 1992.
  2913.  
  2914.           [4]  McCloghrie, K., and Galvin, J., "Party MIB for version 2
  2915.                of the Simple Network Management Protocol (SNMPv2)", RFC
  2916.                1447, Hughes LAN Systems, Trusted Information Systems,
  2917.                April 1993.
  2918.  
  2919.           [5]  Data Encryption Standard, National Institute of Standards
  2920.                and Technology.  Federal Information Processing Standard
  2921.                (FIPS) Publication 46-1.  Supersedes FIPS Publication 46,
  2922.                (January, 1977; reaffirmed January, 1988).
  2923.  
  2924.           [6]  Data Encryption Algorithm, American National Standards
  2925.                Institute.  ANSI X3.92-1981, (December, 1980).
  2926.  
  2927.           [7]  DES Modes of Operation, National Institute of Standards
  2928.                and Technology.  Federal Information Processing Standard
  2929.                (FIPS) Publication 81, (December, 1980).
  2930.  
  2931.           [8]  Data Encryption Algorithm - Modes of Operation, American
  2932.                National Standards Institute.  ANSI X3.106-1983, (May
  2933.                1983).
  2934.  
  2935.           [9]  Guidelines for Implementing and Using the NBS Data
  2936.                Encryption Standard, National Institute of Standards and
  2937.                Technology.  Federal Information Processing Standard
  2938.                (FIPS) Publication 74, (April, 1981).
  2939.  
  2940.           [10] Validating the Correctness of Hardware Implementations of
  2941.                the NBS Data Encryption Standard, National Institute of
  2942.                Standards and Technology.  Special Publication 500-20.
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.           Galvin & McCloghrie                                  [Page 49]
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.           RFC 1446        Security Protocols for SNMPv2       April 1993
  2956.  
  2957.  
  2958.           [11] Maintenance Testing for the Data Encryption Standard,
  2959.                National Institute of Standards and Technology.  Special
  2960.                Publication 500-61, (August, 1980).
  2961.  
  2962.           [12] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2963.                "Protocol Operations for version 2 of the Simple Network
  2964.                Management Protocol (SNMPv2)", RFC 1448, SNMP Research,
  2965.                Inc., Hughes LAN Systems, Dover Beach Consulting, Inc.,
  2966.                Carnegie Mellon University, April 1993.
  2967.  
  2968.           [13] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2969.                "Transport Mappings for version 2 of the Simple Network
  2970.                Management Protocol (SNMPv2)", RFC 1449, SNMP Research,
  2971.                Inc., Hughes LAN Systems, Dover Beach Consulting, Inc.,
  2972.                Carnegie Mellon University, April 1993.
  2973.  
  2974.           [14] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2975.                "Management Information Base for version 2 of the Simple
  2976.                Network Management Protocol (SNMPv2)", RFC 1450, SNMP
  2977.                Research, Inc., Hughes LAN Systems, Dover Beach
  2978.                Consulting, Inc., Carnegie Mellon University, April 1993.
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.           Galvin & McCloghrie                                  [Page 50]
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.           RFC 1446        Security Protocols for SNMPv2       April 1993
  3015.  
  3016.  
  3017.           9.  Authors' Addresses
  3018.  
  3019.                James M. Galvin
  3020.                Trusted Information Systems, Inc.
  3021.                3060 Washington Road, Route 97
  3022.                Glenwood, MD 21738
  3023.  
  3024.                Phone:  +1 301 854-6889
  3025.                EMail:  galvin@tis.com
  3026.  
  3027.  
  3028.                Keith McCloghrie
  3029.                Hughes LAN Systems
  3030.                1225 Charleston Road
  3031.                Mountain View, CA  94043
  3032.                US
  3033.  
  3034.                Phone: +1 415 966 7934
  3035.                Email: kzm@hls.com
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.           Galvin & McCloghrie                                  [Page 51]
  3068.  
  3069.